package anlage;

import java.util.ArrayList;
import java.util.Collections;

import zug.Waggontyp;

/**
 * 
 * @author Nilientes
 *
 */
public class Anlage {
	ArrayList<AnlageObjekt> objekte = new ArrayList<AnlageObjekt>();
	/**
	 * 
	 */
	public ArrayList<Waggontyp> wagentypen = new ArrayList<Waggontyp>();
	

	private static Anlage anlage=null;
	
	AnlageObjekt start= null;
	
	
	private Anlage()
	{
		
	}

	/**
	 * 
	 * @return returns the Singleton object
	 */
	public static Anlage getAnlage()
	{
		if(anlage==null)
			anlage = new Anlage();
		
		return anlage;
	}
	
	/**
	 * 
	 * @return returns the first (in hill direction) Anlage object of the station
	 */
	public AnlageObjekt getStart()
	{
		return start;
	}
	
	/**
	 * 
	 * @return returns the direction tracks of the station
	 */
	public ArrayList<Richtungsgleis> getRichtungsgleise()
	{
		ArrayList<Richtungsgleis> rgl = new ArrayList<Richtungsgleis>();
		
		for(AnlageObjekt ao : objekte)
		{
			if(ao instanceof Richtungsgleis)
			{
				rgl.add((Richtungsgleis)ao);
			}
		}
		
		Collections.sort(rgl);
		
		return rgl;
	}

	/**
	 * 
	 * @return returns a list of all station objects
	 */
	public ArrayList<AnlageObjekt> getObjekte()
	{
		return objekte;
	}
	
	
}
